package org.finesys.ai.core.chat;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 前端请求对象
 */
@Data
public class ChatRequest {
    /**
     * 会话ID
     */
    private String chatId;
    /**
     * 会话ID
     */
    private String conversationId;

    /**
     * 模型ID
     */
    private String modelId;
    /**
     * 模型
     */
    private String model;
    /**
     * 用户消息
     */
    private String userMessage;
    /**
     * 系统消息
     */
    private String systemMessage;
    /**
     * 提示消息
     */
    private String assistantMessage;
    /**
     * 温度参数，介于0到2之间。较高的值（如0.8）会使输出更加随机，而较低的值（如0.2）则使输出更确定和可预测。
     */
    private Double temperature;
    /**
     *
     */
    private Double topP;

    private Integer n;
    /**
     * 最大生成token数
     */
    private Integer maxTokens;
    private Double presencePenalty;
    private Double frequencyPenalty;
    private Map<String, Integer> logitBias;
    private String user;
    /**
     * 停止生成的词列表
     */
    private String stopWords;
    /**
     * 流式返回
     */
    private Boolean stream;

    /**
     * 消息
     */
    List<Message> messages;
    /**
     * 图片生成参数
     */
    private String imageSize;
    private String imageQuality;
    private String imageStyle;
    private String imageResponseFormat;
    /**
     * embedding参数
     */
    private List<String> input;
    @JsonProperty
    private Integer dimensions;
}
